package cn.itcast.crm.service;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import org.springframework.data.jpa.repository.Query;

import cn.itcast.crm.domain.Customer;

public interface CustomerService {

	// 查询未关联客户列表
	@Path("/noAssociationCustomers")
	@GET
	@Produces({"application/xml","application/json"})
	public List<Customer> findNoAssociationCustomers();

	@Path("/associationfixedareacustomers/{fixedareaid}")
	@GET
	@Produces({"application/xml","application/json"})
	// 已经关联到指定定区的客户列表
	public List<Customer> findHasAssociationFixedAreaCustomers(@PathParam("fixedareaid")String fixedAreaId);

	// 将客户关联到定区
	@Path("/associationcustomerstofixedarea")
	@PUT
	public void associationCustomersToFixedArea(
			@QueryParam("customerIds")String customerIds,
			@QueryParam("fixedAreaId")String fixedAreaId);
	
	//保存客户
	@Path("/customer")
	@POST
	@Consumes({"application/xml","application/json"})
	public void saveCustomer(Customer customer);
	//根据电话号码查询客户
	@Path("/customer/telephone/{telephone}")
	@GET
	@Consumes({"application/xml","application/json"})
	public Customer findByTelephone(@PathParam("telephone") String telephone);
	
	//修改
	@Path("/customer/updatetype/{telephone}")
	@PUT
	public void updateType(@PathParam("telephone") String telephone);
	
	//customer_Login
	
	@Path("/customer_login")
	@GET
	@Consumes({"application/xml","application/json"})
	@Produces({"application/xml","application/json"})
	public Customer findByTelephoneAndPassword(@QueryParam("telephone") String telephone,@QueryParam("password") String password);

	@Path("/findFixedAreaIdByAddress")
	@GET
	@Consumes({"application/xml","application/json"})
	@Produces({"application/xml","application/json"})
	public String findFixedAreaIdByAddress(@QueryParam("address") String address);
}
